#ifndef AMBIANTE_H
#define AMBIANTE_H

#include "Lumiere.hpp"

//#include "Couleur.hpp"
//#include "Coord.hpp"

/**
 * Classe implémentant la lumière ambiante pour le raytracing. Une
 * lumière ambiante est caractérisée par l'absence de direction
 * privilégiée. Cela se traduit dans l'implémentation par le fait que
 * la direction de la lumière est toujours donnée par la normale à
 * l'objet (ce qui fait qu'il n'y a pas d'atténuation due à la
 * diffusion).
 *
 * Une lumière ambiante possède un coefficient d'atténuation, comme ça
 * il n'y a pas besoin d'entrer un gris pour avoir une faible
 * illumination blanche.
 *
 * @author Johan "Solo" Luisier
 *
 * @date 2010
 */
class Ambiante : public Lumiere
{
 public:
  Ambiante(const Couleur& coul, const double& attenuation);
  Ambiante(const Ambiante& src);
  ~Ambiante();
  const Couleur& color() const;
  const Coord& position() const;
  double attenuation(const Coord& coord) const;
 protected:
  /**
   * Valeur du coefficient d'atténuation.
   */
  double Attenuation;
  /**
   * Valeur de la "position" de la source lumineuse. On utilise ici le
   * point inirialisé avec le constructeur par défaut, qui renvoie \f$
   * \left( 99999., 99999., 99999. \right) \f$.
   */
  static const Coord Position;
};

#endif // AMBIANTE_H
